//对用户登录和注册的逻辑进行设计   (查询用户，保存用户信息)

//1.首先引用数据库的连接文件
var mongo = require('./db');
//2, 创建一个user(用户)类,在这里面对登录和注册进行设计
function User(user) {
//user类的主要功能 就是为了完成新增和查询操作，那么他应该是针对用户信息(uers集合)进行的
    this.name = user.name;
    this.password = user.password;
    this.email = user.email;
}
module.exports = User;
//save方法放到原型链中 操作的数据是整个数据
//保存用户信息的save方法，注册
//1,打开数据库
//2,用户信息放到数据库里面,存放起来
//3,关闭数据库
User.prototype.save = function(callback){
	// 接收一下表单的数据，要保存的user对象
	var user = {
		name:this.name,
		password:this.password,
		email:this.email
	};
//	open方法打开数据库
mongo.open(function(err,db){
	if(err){  //如果打开发生错误
		return callback(err);
	}
	//读取user集合
	db.collection('users',function(err,collection){
		if(err){   //读取错误
			mongo.close();
			return callback(err);
		}
		//将用户的信息存放到 users集合当中去
		collection.insert(user,{safe:true},function(err,user){
			mongo.close();
			if(err){   //存放错误
				return callback(err);
			}
			   return callback(user[0]) ;  //返回注册成功的用户名
		})
	})
  })
}
//根据名称获取用户信息的get方法,       登录
//操作的数据是传入的参数
User.get = function(name,callback){
//	 还是打开数据库
	mongo.open(function(err,db){
		if(err){
			return callback(err);
		}
//		还是读取users集合
		db.collection('users',function(err,collection){
			if(err){
				mongo.close();
				return callback(err);
			}
//			查询用户名
       collection.findOne({name:name},function(err,user){
       			if(err){
       				return callback(err);
       			}
       			callback(null,user);// 成功返回查询的用户信息
          })
		})
	 })

};

